﻿using Little.Soldier.SWIFT;
using Little.Soldier.SWIFT.Definition;
using System.Collections.Generic;
using System.ComponentModel;

namespace Little.Soldier.SWIFT.Messages.Category1
{
  public class MT101 : SwiftMessage
  {
    private static SwiftMessageDefinition MessageDefinition;
    private static SwiftTagSequenceDefinition U0002;
    private static SwiftTagDefinition U0003;
    private static SwiftTagSubItemDefinition U0004;
    private static SwiftTagDefinition U0005;
    private static SwiftTagSubItemDefinition U0006;
    private static SwiftTagDefinition U0007;
    private static SwiftTagSubItemDefinition U0008;
    private static SwiftTagSubItemDefinition U000E;
    private static SwiftTagChoiceDefinition U000F;
    private static SwiftTagDefinition U0010;
    private static SwiftTagDefinition U0011;
    private static SwiftTagSubItemDefinition U0012;
    private static SwiftTagChoiceDefinition U0013;
    private static SwiftTagDefinition U0014;
    private static SwiftTagSubItemDefinition U0015;
    private static SwiftTagSubItemDefinition U0016;
    private static SwiftTagSubItemDefinition U0017;
    private static SwiftTagSubItemDefinition U0018;
    private static SwiftTagSubItemDefinition U0019;
    private static SwiftTagSubItemDefinition U001A;
    private static SwiftTagSubItemDefinition U001B;
    private static SwiftTagDefinition U001C;
    private static SwiftTagSubItemDefinition U001D;
    private static SwiftTagSubItemDefinition U001E;
    private static SwiftTagSubItemDefinition U001F;
    private static SwiftTagDefinition U007F;
    private static SwiftTagSubItemDefinition U0080;
    private static SwiftTagSubItemDefinition U0081;
    private static SwiftTagSubItemDefinition U0082;
    private static SwiftTagChoiceDefinition U0083;
    private static SwiftTagDefinition U0084;
    private static SwiftTagSubItemDefinition U0086;
    private static SwiftTagSubItemDefinition U0087;
    private static SwiftTagDefinition U0088;
    private static SwiftTagSubItemDefinition U0089;
    private static SwiftTagDefinition U008A;
    private static SwiftTagSubItemDefinition U008B;
    private static SwiftTagSubItemDefinition U008C;
    private static SwiftTagDefinition U008D;
    private static SwiftTagSubItemDefinition U008E;
    private static SwiftTagDefinition U008F;
    private static SwiftTagSubItemDefinition U0090;
    private static SwiftTagSequenceDefinition U0091;
    private static SwiftTagDefinition U0092;
    private static SwiftTagSubItemDefinition U0093;
    private static SwiftTagDefinition U0094;
    private static SwiftTagSubItemDefinition U0095;
    private static SwiftTagDefinition U0096;
    private static SwiftTagSubItemDefinition U0097;
    private static SwiftTagSubItemDefinition U0098;
    private static SwiftTagSubItemDefinition U0099;
    private static SwiftTagDefinition U009A;
    private static SwiftTagSubItemDefinition U009B;
    private static SwiftTagSubItemDefinition U009C;
    private static SwiftTagChoiceDefinition U009D;
    private static SwiftTagDefinition U009E;
    private static SwiftTagDefinition U009F;
    private static SwiftTagSubItemDefinition U0001U0002;
    private static SwiftTagChoiceDefinition U0002U0002;
    private static SwiftTagDefinition U0003U0002;
    private static SwiftTagSubItemDefinition U0004U0002;
    private static SwiftTagSubItemDefinition U0005U0002;
    private static SwiftTagSubItemDefinition U0006U0002;
    private static SwiftTagSubItemDefinition U0007U0002;
    private static SwiftTagSubItemDefinition U0008U0002;
    private static SwiftTagSubItemDefinition U000EU0002;
    private static SwiftTagSubItemDefinition U000FU0002;
    private static SwiftTagDefinition U0010U0002;
    private static SwiftTagSubItemDefinition U0011U0002;
    private static SwiftTagSubItemDefinition U0012U0002;
    private static SwiftTagSubItemDefinition U0013U0002;
    private static SwiftTagDefinition U0014U0002;
    private static SwiftTagSubItemDefinition U0015U0002;
    private static SwiftTagSubItemDefinition U0016U0002;
    private static SwiftTagSubItemDefinition U0017U0002;
    private static SwiftTagChoiceDefinition U0018U0002;
    private static SwiftTagDefinition U0019U0002;
    private static SwiftTagSubItemDefinition U001AU0002;
    private static SwiftTagSubItemDefinition U001BU0002;
    private static SwiftTagDefinition U001CU0002;
    private static SwiftTagSubItemDefinition U001DU0002;
    private static SwiftTagChoiceDefinition U001EU0002;
    private static SwiftTagDefinition U001FU0002;
    private static SwiftTagSubItemDefinition U007FU0002;
    private static SwiftTagSubItemDefinition U0080U0002;
    private static SwiftTagDefinition U0081U0002;
    private static SwiftTagSubItemDefinition U0082U0002;
    private static SwiftTagDefinition U0083U0002;
    private static SwiftTagSubItemDefinition U0084U0002;
    private static SwiftTagSubItemDefinition U0086U0002;
    private static SwiftTagChoiceDefinition U0087U0002;
    private static SwiftTagDefinition U0088U0002;
    private static SwiftTagSubItemDefinition U0089U0002;
    private static SwiftTagSubItemDefinition U008AU0002;
    private static SwiftTagDefinition U008BU0002;
    private static SwiftTagSubItemDefinition U008CU0002;
    private static SwiftTagDefinition U008DU0002;
    private static SwiftTagSubItemDefinition U008EU0002;
    private static SwiftTagSubItemDefinition U008FU0002;
    private static SwiftTagChoiceDefinition U0090U0002;
    private static SwiftTagDefinition U0091U0002;
    private static SwiftTagSubItemDefinition U0092U0002;
    private static SwiftTagSubItemDefinition U0093U0002;
    private static SwiftTagSubItemDefinition U0094U0002;
    private static SwiftTagDefinition U0095U0002;
    private static SwiftTagSubItemDefinition U0096U0002;
    private static SwiftTagSubItemDefinition U0097U0002;
    private static SwiftTagSubItemDefinition U0098U0002;
    private static SwiftTagDefinition U0099U0002;
    private static SwiftTagDefinition U009AU0002;
    private static SwiftTagDefinition U009BU0002;
    private static SwiftTagSubItemDefinition U009CU0002;
    private static SwiftTagSubItemDefinition U009DU0002;
    private static SwiftTagDefinition U009EU0002;
    private static SwiftTagSubItemDefinition U009FU0002;
    private static SwiftTagDefinition U0001U0003;
    private static SwiftTagSubItemDefinition U0002U0003;
    private static SwiftTagDefinition U0003U0003;
    private static SwiftTagSubItemDefinition U0004U0003;

    [Description("General Information")]
    public MT101.SequenceAClass SequenceA
    {
      get
      {
        return new MT101.SequenceAClass((SwiftElement) this, 0, false);
      }
    }

    [Description("Transaction Details")]
    public MT101.SequenceBClass[] SequenceB
    {
      get
      {
        int index = -1;
        List<MT101.SequenceBClass> list = new List<MT101.SequenceBClass>();
        int count;
        do
        {
          ++index;
          MT101.SequenceBClass sequenceBclass = new MT101.SequenceBClass((SwiftElement) this, index, false);
          count = this.ListTags((SwiftElement) sequenceBclass).Count;
          if (count > 0)
            list.Add(sequenceBclass);
        }
        while (count > 0);
        return list.ToArray();
      }
    }

    public MT101()
      : base(true)
    {
    }

    public MT101(SwiftMessage message)
      : base(message)
    {
    }

    public MT101.SequenceBClass AddSequenceB()
    {
      return new MT101.SequenceBClass((SwiftElement) this, this.SequenceB.Length, true);
    }

    public void RemoveSequenceB(MT101.SequenceBClass sequence)
    {
      foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
        this.RemoveTag(tag);
    }

    internal override SwiftMessageDefinition MsgDefinition()
    {
      return MT101.MessageDefinition;
    }

    protected override void InitSwiftMessageDefinition()
    {
      MT101.MessageDefinition = new SwiftMessageDefinition("MT101", "Request for Transfer");
      MT101.U0002 = new SwiftTagSequenceDefinition("SequenceA", "General Information");
      MT101.U0003 = new SwiftTagDefinition("SendersReference_A_20", "Sender's Reference");
      MT101.U0003.TagName = ":20:";
      MT101.U0004 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT101.U0003.Elements.Add((SwiftDefinitionElement) MT101.U0004);
      MT101.U0002.Elements.Add((SwiftDefinitionElement) MT101.U0003);
      MT101.U0005 = new SwiftTagDefinition("CustomerSpecifiedReference_A_21R", "Customers Specified Reference");
      MT101.U0005.TagName = ":21R:";
      MT101.U0005.Mandatory = false;
      MT101.U0006 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT101.U0005.Elements.Add((SwiftDefinitionElement) MT101.U0006);
      MT101.U0002.Elements.Add((SwiftDefinitionElement) MT101.U0005);
      MT101.U0007 = new SwiftTagDefinition("Message_A_28D", "Message");
      MT101.U0007.TagName = ":28D:";
      MT101.U0008 = new SwiftTagSubItemDefinition("MessageIndex", "Message Index");
      MT101.U0007.Elements.Add((SwiftDefinitionElement) MT101.U0008);
      MT101.U000E = new SwiftTagSubItemDefinition("Total", "Total");
      MT101.U0007.Elements.Add((SwiftDefinitionElement) MT101.U000E);
      MT101.U0002.Elements.Add((SwiftDefinitionElement) MT101.U0007);
      MT101.U000F = new SwiftTagChoiceDefinition("Choice", "");
      MT101.U000F.Mandatory = false;
      MT101.U000F.Multiple = true;
      MT101.U0010 = new SwiftTagDefinition("InstructingParty_A_50C", "Instructing Party");
      MT101.U0010.TagName = ":50C:";
      MT101.U000F.Elements.Add((SwiftDefinitionElement) MT101.U0010);
      MT101.U0011 = new SwiftTagDefinition("InstructingParty_A_50L", "Instructing Party");
      MT101.U0011.TagName = ":50L:";
      MT101.U0012 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT101.U0011.Elements.Add((SwiftDefinitionElement) MT101.U0012);
      MT101.U000F.Elements.Add((SwiftDefinitionElement) MT101.U0011);
      MT101.U0002.Elements.Add((SwiftDefinitionElement) MT101.U000F);
      MT101.U0013 = new SwiftTagChoiceDefinition("Choice", "");
      MT101.U0013.Mandatory = false;
      MT101.U0013.Multiple = true;
      MT101.U0014 = new SwiftTagDefinition("OrderingCustomer_A_50F", "Ordering Customer");
      MT101.U0014.TagName = ":50F";
      MT101.U0015 = new SwiftTagSubItemDefinition("OrderingCustomerIdentification_1", "Account");
      MT101.U0016 = new SwiftTagSubItemDefinition("Account", "");
      MT101.U0015.Elements.Add((SwiftDefinitionElement) MT101.U0016);
      MT101.U0014.Elements.Add((SwiftDefinitionElement) MT101.U0015);
      MT101.U0017 = new SwiftTagSubItemDefinition("OrderingCustomerIdentification_2", "Ordering Customer Identification");
      MT101.U0018 = new SwiftTagSubItemDefinition("TypeOfIdentification", "Type Of Identification");
      MT101.U0017.Elements.Add((SwiftDefinitionElement) MT101.U0018);
      MT101.U0019 = new SwiftTagSubItemDefinition("CountryCode", "Country Code");
      MT101.U0017.Elements.Add((SwiftDefinitionElement) MT101.U0019);
      MT101.U001A = new SwiftTagSubItemDefinition("Identification", "Identification");
      MT101.U0017.Elements.Add((SwiftDefinitionElement) MT101.U001A);
      MT101.U0014.Elements.Add((SwiftDefinitionElement) MT101.U0017);
      MT101.U001B = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT101.U0014.Elements.Add((SwiftDefinitionElement) MT101.U001B);
      MT101.U0013.Elements.Add((SwiftDefinitionElement) MT101.U0014);
      MT101.U001C = new SwiftTagDefinition("OrderingCustomer_A_50G", "Ordering Customer");
      MT101.U001C.TagName = ":50G:";
      MT101.U001D = new SwiftTagSubItemDefinition("Account", "Account");
      MT101.U001E = new SwiftTagSubItemDefinition("Account_1", "");
      MT101.U001D.Elements.Add((SwiftDefinitionElement) MT101.U001E);
      MT101.U001C.Elements.Add((SwiftDefinitionElement) MT101.U001D);
      MT101.U001F = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT101.U001C.Elements.Add((SwiftDefinitionElement) MT101.U001F);
      MT101.U0013.Elements.Add((SwiftDefinitionElement) MT101.U001C);
      MT101.U007F = new SwiftTagDefinition("OrderingCustomer_A_50H", "Ordering Customer");
      MT101.U007F.TagName = ":50H:";
      MT101.U0080 = new SwiftTagSubItemDefinition("Account", "Account");
      MT101.U0081 = new SwiftTagSubItemDefinition("Account_1", "");
      MT101.U0080.Elements.Add((SwiftDefinitionElement) MT101.U0081);
      MT101.U007F.Elements.Add((SwiftDefinitionElement) MT101.U0080);
      MT101.U0082 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT101.U007F.Elements.Add((SwiftDefinitionElement) MT101.U0082);
      MT101.U0013.Elements.Add((SwiftDefinitionElement) MT101.U007F);
      MT101.U0002.Elements.Add((SwiftDefinitionElement) MT101.U0013);
      MT101.U0083 = new SwiftTagChoiceDefinition("Choice", "");
      MT101.U0083.Mandatory = false;
      MT101.U0083.Multiple = true;
      MT101.U0084 = new SwiftTagDefinition("AccountServicingInstitution_A_52A", "Account Servcing Institution");
      MT101.U0084.TagName = ":52A:";
      MT101.U0086 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT101.U0086.Mandatory = false;
      MT101.U0084.Elements.Add((SwiftDefinitionElement) MT101.U0086);
      MT101.U0087 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT101.U0084.Elements.Add((SwiftDefinitionElement) MT101.U0087);
      MT101.U0083.Elements.Add((SwiftDefinitionElement) MT101.U0084);
      MT101.U0088 = new SwiftTagDefinition("AccountServicingInstitution_A_52C", "Account Servcing Institution");
      MT101.U0088.TagName = ":52C:/";
      MT101.U0089 = new SwiftTagSubItemDefinition("PartyIdentifier", "");
      MT101.U0088.Elements.Add((SwiftDefinitionElement) MT101.U0089);
      MT101.U0083.Elements.Add((SwiftDefinitionElement) MT101.U0088);
      MT101.U0002.Elements.Add((SwiftDefinitionElement) MT101.U0083);
      MT101.U008A = new SwiftTagDefinition("SendingInstitution_A_51A", "Sending Institution");
      MT101.U008A.TagName = ":51A:";
      MT101.U008A.Mandatory = false;
      MT101.U008B = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT101.U008B.Mandatory = false;
      MT101.U008A.Elements.Add((SwiftDefinitionElement) MT101.U008B);
      MT101.U008C = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT101.U008A.Elements.Add((SwiftDefinitionElement) MT101.U008C);
      MT101.U0002.Elements.Add((SwiftDefinitionElement) MT101.U008A);
      MT101.U008D = new SwiftTagDefinition("RequestedExecutionDate_A_30", "Requested Execution Date");
      MT101.U008D.TagName = ":30:";
      MT101.U008E = new SwiftTagSubItemDefinition("Date", "Date");
      MT101.U008D.Elements.Add((SwiftDefinitionElement) MT101.U008E);
      MT101.U0002.Elements.Add((SwiftDefinitionElement) MT101.U008D);
      MT101.U008F = new SwiftTagDefinition("Authorisation_A_25", "Authorisation");
      MT101.U008F.TagName = ":25:";
      MT101.U008F.Mandatory = false;
      MT101.U0090 = new SwiftTagSubItemDefinition("Authorisation", "");
      MT101.U008F.Elements.Add((SwiftDefinitionElement) MT101.U0090);
      MT101.U0002.Elements.Add((SwiftDefinitionElement) MT101.U008F);
      MT101.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT101.U0002);
      MT101.U0091 = new SwiftTagSequenceDefinition("SequenceB", "Transaction Details");
      MT101.U0091.Multiple = true;
      MT101.U0092 = new SwiftTagDefinition("TransactionReference_B_21", "Transaction Reference");
      MT101.U0092.TagName = ":21:";
      MT101.U0093 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT101.U0092.Elements.Add((SwiftDefinitionElement) MT101.U0093);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U0092);
      MT101.U0094 = new SwiftTagDefinition("FXDealReference_B_21F", "F/X Deal Reference");
      MT101.U0094.TagName = ":21F:";
      MT101.U0094.Mandatory = false;
      MT101.U0095 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT101.U0094.Elements.Add((SwiftDefinitionElement) MT101.U0095);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U0094);
      MT101.U0096 = new SwiftTagDefinition("InstructionCode_B_23E", "Instruction Code");
      MT101.U0096.TagName = ":23E:";
      MT101.U0096.Mandatory = false;
      MT101.U0096.Multiple = true;
      MT101.U0097 = new SwiftTagSubItemDefinition("InstructionCode", "Instruction Code");
      MT101.U0096.Elements.Add((SwiftDefinitionElement) MT101.U0097);
      MT101.U0098 = new SwiftTagSubItemDefinition("AdditionalInformation", "Additional Information");
      MT101.U0098.Mandatory = false;
      MT101.U0099 = new SwiftTagSubItemDefinition("AdditionalInformation_1", "Additional Information");
      MT101.U0098.Elements.Add((SwiftDefinitionElement) MT101.U0099);
      MT101.U0096.Elements.Add((SwiftDefinitionElement) MT101.U0098);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U0096);
      MT101.U009A = new SwiftTagDefinition("CurrencyTransactionAmount_B_32B", "Currency Transaction Amount");
      MT101.U009A.TagName = ":32B:";
      MT101.U009B = new SwiftTagSubItemDefinition("Currency", "");
      MT101.U009A.Elements.Add((SwiftDefinitionElement) MT101.U009B);
      MT101.U009C = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT101.U009A.Elements.Add((SwiftDefinitionElement) MT101.U009C);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U009A);
      MT101.U009D = new SwiftTagChoiceDefinition("Choice", "");
      MT101.U009D.Mandatory = false;
      MT101.U009D.Multiple = true;
      MT101.U009E = new SwiftTagDefinition("InstructingParty_B_50C", "Instructing Party");
      MT101.U009E.TagName = ":50C:";
      MT101.U009D.Elements.Add((SwiftDefinitionElement) MT101.U009E);
      MT101.U009F = new SwiftTagDefinition("InstructingParty_B_50L", "Instructing Party");
      MT101.U009F.TagName = ":50L:";
      MT101.U0001U0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT101.U009F.Elements.Add((SwiftDefinitionElement) MT101.U0001U0002);
      MT101.U009D.Elements.Add((SwiftDefinitionElement) MT101.U009F);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U009D);
      MT101.U0002U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT101.U0002U0002.Mandatory = false;
      MT101.U0002U0002.Multiple = true;
      MT101.U0003U0002 = new SwiftTagDefinition("OrderingCustomer_B_50F", "Ordering Customer");
      MT101.U0003U0002.TagName = ":50F";
      MT101.U0004U0002 = new SwiftTagSubItemDefinition("OrderingCustomerIdentification_1", "Account");
      MT101.U0005U0002 = new SwiftTagSubItemDefinition("Account", "");
      MT101.U0004U0002.Elements.Add((SwiftDefinitionElement) MT101.U0005U0002);
      MT101.U0003U0002.Elements.Add((SwiftDefinitionElement) MT101.U0004U0002);
      MT101.U0006U0002 = new SwiftTagSubItemDefinition("OrderingCustomerIdentification_2", "Ordering Customer Identification");
      MT101.U0007U0002 = new SwiftTagSubItemDefinition("TypeOfIdentification", "Type Of Identification");
      MT101.U0006U0002.Elements.Add((SwiftDefinitionElement) MT101.U0007U0002);
      MT101.U0008U0002 = new SwiftTagSubItemDefinition("CountryCode", "Country Code");
      MT101.U0006U0002.Elements.Add((SwiftDefinitionElement) MT101.U0008U0002);
      MT101.U000EU0002 = new SwiftTagSubItemDefinition("Identification", "Identification");
      MT101.U0006U0002.Elements.Add((SwiftDefinitionElement) MT101.U000EU0002);
      MT101.U0003U0002.Elements.Add((SwiftDefinitionElement) MT101.U0006U0002);
      MT101.U000FU0002 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT101.U0003U0002.Elements.Add((SwiftDefinitionElement) MT101.U000FU0002);
      MT101.U0002U0002.Elements.Add((SwiftDefinitionElement) MT101.U0003U0002);
      MT101.U0010U0002 = new SwiftTagDefinition("OrderingCustomer_B_50G", "Ordering Customer");
      MT101.U0010U0002.TagName = ":50G:";
      MT101.U0011U0002 = new SwiftTagSubItemDefinition("Account", "Account");
      MT101.U0012U0002 = new SwiftTagSubItemDefinition("Account_1", "");
      MT101.U0011U0002.Elements.Add((SwiftDefinitionElement) MT101.U0012U0002);
      MT101.U0010U0002.Elements.Add((SwiftDefinitionElement) MT101.U0011U0002);
      MT101.U0013U0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT101.U0010U0002.Elements.Add((SwiftDefinitionElement) MT101.U0013U0002);
      MT101.U0002U0002.Elements.Add((SwiftDefinitionElement) MT101.U0010U0002);
      MT101.U0014U0002 = new SwiftTagDefinition("OrderingCustomer_B_50H", "Ordering Customer");
      MT101.U0014U0002.TagName = ":50H:";
      MT101.U0015U0002 = new SwiftTagSubItemDefinition("Account", "Account");
      MT101.U0016U0002 = new SwiftTagSubItemDefinition("Account_1", "");
      MT101.U0015U0002.Elements.Add((SwiftDefinitionElement) MT101.U0016U0002);
      MT101.U0014U0002.Elements.Add((SwiftDefinitionElement) MT101.U0015U0002);
      MT101.U0017U0002 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT101.U0014U0002.Elements.Add((SwiftDefinitionElement) MT101.U0017U0002);
      MT101.U0002U0002.Elements.Add((SwiftDefinitionElement) MT101.U0014U0002);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U0002U0002);
      MT101.U0018U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT101.U0018U0002.Mandatory = false;
      MT101.U0018U0002.Multiple = true;
      MT101.U0019U0002 = new SwiftTagDefinition("AccountServicingInstitution_B_52A", "Account Servcing Institution");
      MT101.U0019U0002.TagName = ":52A:";
      MT101.U001AU0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT101.U001AU0002.Mandatory = false;
      MT101.U0019U0002.Elements.Add((SwiftDefinitionElement) MT101.U001AU0002);
      MT101.U001BU0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT101.U0019U0002.Elements.Add((SwiftDefinitionElement) MT101.U001BU0002);
      MT101.U0018U0002.Elements.Add((SwiftDefinitionElement) MT101.U0019U0002);
      MT101.U001CU0002 = new SwiftTagDefinition("AccountServicingInstitution_B_52C", "Account Servcing Institution");
      MT101.U001CU0002.TagName = ":52C:/";
      MT101.U001DU0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "");
      MT101.U001CU0002.Elements.Add((SwiftDefinitionElement) MT101.U001DU0002);
      MT101.U0018U0002.Elements.Add((SwiftDefinitionElement) MT101.U001CU0002);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U0018U0002);
      MT101.U001EU0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT101.U001EU0002.Mandatory = false;
      MT101.U001EU0002.Multiple = true;
      MT101.U001FU0002 = new SwiftTagDefinition("Intermediary_B_56A", "Intermediary");
      MT101.U001FU0002.TagName = ":56A:";
      MT101.U007FU0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT101.U007FU0002.Mandatory = false;
      MT101.U001FU0002.Elements.Add((SwiftDefinitionElement) MT101.U007FU0002);
      MT101.U0080U0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT101.U001FU0002.Elements.Add((SwiftDefinitionElement) MT101.U0080U0002);
      MT101.U001EU0002.Elements.Add((SwiftDefinitionElement) MT101.U001FU0002);
      MT101.U0081U0002 = new SwiftTagDefinition("Intermediary_B_56C", "");
      MT101.U0081U0002.TagName = ":56C:/";
      MT101.U0082U0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "");
      MT101.U0081U0002.Elements.Add((SwiftDefinitionElement) MT101.U0082U0002);
      MT101.U001EU0002.Elements.Add((SwiftDefinitionElement) MT101.U0081U0002);
      MT101.U0083U0002 = new SwiftTagDefinition("Intermediary_B_56D", "");
      MT101.U0083U0002.TagName = ":56D:";
      MT101.U0084U0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT101.U0084U0002.Mandatory = false;
      MT101.U0083U0002.Elements.Add((SwiftDefinitionElement) MT101.U0084U0002);
      MT101.U0086U0002 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT101.U0083U0002.Elements.Add((SwiftDefinitionElement) MT101.U0086U0002);
      MT101.U001EU0002.Elements.Add((SwiftDefinitionElement) MT101.U0083U0002);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U001EU0002);
      MT101.U0087U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT101.U0087U0002.Mandatory = false;
      MT101.U0087U0002.Multiple = true;
      MT101.U0088U0002 = new SwiftTagDefinition("AccountWithInstitution_B_57A", "Account With Institution");
      MT101.U0088U0002.TagName = ":57A:";
      MT101.U0089U0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT101.U0089U0002.Mandatory = false;
      MT101.U0088U0002.Elements.Add((SwiftDefinitionElement) MT101.U0089U0002);
      MT101.U008AU0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT101.U0088U0002.Elements.Add((SwiftDefinitionElement) MT101.U008AU0002);
      MT101.U0087U0002.Elements.Add((SwiftDefinitionElement) MT101.U0088U0002);
      MT101.U008BU0002 = new SwiftTagDefinition("AccountWithInstitution_B_57C", "");
      MT101.U008BU0002.TagName = ":57C:/";
      MT101.U008CU0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "");
      MT101.U008BU0002.Elements.Add((SwiftDefinitionElement) MT101.U008CU0002);
      MT101.U0087U0002.Elements.Add((SwiftDefinitionElement) MT101.U008BU0002);
      MT101.U008DU0002 = new SwiftTagDefinition("AccountWithInstitution_B_57D", "");
      MT101.U008DU0002.TagName = ":57D:";
      MT101.U008EU0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT101.U008EU0002.Mandatory = false;
      MT101.U008DU0002.Elements.Add((SwiftDefinitionElement) MT101.U008EU0002);
      MT101.U008FU0002 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT101.U008DU0002.Elements.Add((SwiftDefinitionElement) MT101.U008FU0002);
      MT101.U0087U0002.Elements.Add((SwiftDefinitionElement) MT101.U008DU0002);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U0087U0002);
      MT101.U0090U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT101.U0090U0002.Multiple = true;
      MT101.U0091U0002 = new SwiftTagDefinition("Beneficiary_B_59A", "Beneficiary");
      MT101.U0091U0002.TagName = ":59A:";
      MT101.U0092U0002 = new SwiftTagSubItemDefinition("Account", "Account");
      MT101.U0092U0002.Mandatory = false;
      MT101.U0093U0002 = new SwiftTagSubItemDefinition("Account_1", "");
      MT101.U0092U0002.Elements.Add((SwiftDefinitionElement) MT101.U0093U0002);
      MT101.U0091U0002.Elements.Add((SwiftDefinitionElement) MT101.U0092U0002);
      MT101.U0094U0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT101.U0091U0002.Elements.Add((SwiftDefinitionElement) MT101.U0094U0002);
      MT101.U0090U0002.Elements.Add((SwiftDefinitionElement) MT101.U0091U0002);
      MT101.U0095U0002 = new SwiftTagDefinition("Beneficiary_B_59", "Beneficiary");
      MT101.U0095U0002.TagName = ":59:";
      MT101.U0096U0002 = new SwiftTagSubItemDefinition("Account", "Account");
      MT101.U0096U0002.Mandatory = false;
      MT101.U0097U0002 = new SwiftTagSubItemDefinition("Account_1", "");
      MT101.U0096U0002.Elements.Add((SwiftDefinitionElement) MT101.U0097U0002);
      MT101.U0095U0002.Elements.Add((SwiftDefinitionElement) MT101.U0096U0002);
      MT101.U0098U0002 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT101.U0095U0002.Elements.Add((SwiftDefinitionElement) MT101.U0098U0002);
      MT101.U0090U0002.Elements.Add((SwiftDefinitionElement) MT101.U0095U0002);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U0090U0002);
      MT101.U0099U0002 = new SwiftTagDefinition("RemittanceInformation_B_70", "Remittance Information");
      MT101.U0099U0002.TagName = ":70:";
      MT101.U0099U0002.Mandatory = false;
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U0099U0002);
      MT101.U009AU0002 = new SwiftTagDefinition("RegulatoryReporting_B_77B", "Regulatory Reporting");
      MT101.U009AU0002.TagName = ":77B:";
      MT101.U009AU0002.Mandatory = false;
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U009AU0002);
      MT101.U009BU0002 = new SwiftTagDefinition("CurrencyOriginalOrderedAmount_B_33B", "Currency/Original Ordered Amount");
      MT101.U009BU0002.TagName = ":33B:";
      MT101.U009BU0002.Mandatory = false;
      MT101.U009CU0002 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT101.U009BU0002.Elements.Add((SwiftDefinitionElement) MT101.U009CU0002);
      MT101.U009DU0002 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT101.U009BU0002.Elements.Add((SwiftDefinitionElement) MT101.U009DU0002);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U009BU0002);
      MT101.U009EU0002 = new SwiftTagDefinition("DetailOfCharges_B_71A", "Detail Of Charges");
      MT101.U009EU0002.TagName = ":71A:";
      MT101.U009FU0002 = new SwiftTagSubItemDefinition("Code", "Code");
      MT101.U009EU0002.Elements.Add((SwiftDefinitionElement) MT101.U009FU0002);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U009EU0002);
      MT101.U0001U0003 = new SwiftTagDefinition("ChargesAccount_B_25A", "Charges Account");
      MT101.U0001U0003.TagName = ":25A:";
      MT101.U0001U0003.Mandatory = false;
      MT101.U0002U0003 = new SwiftTagSubItemDefinition("Account", "Account");
      MT101.U0001U0003.Elements.Add((SwiftDefinitionElement) MT101.U0002U0003);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U0001U0003);
      MT101.U0003U0003 = new SwiftTagDefinition("ExchangeRate_B_36", "Exchange Rate");
      MT101.U0003U0003.TagName = ":36:";
      MT101.U0003U0003.Mandatory = false;
      MT101.U0004U0003 = new SwiftTagSubItemDefinition("Rate", "");
      MT101.U0003U0003.Elements.Add((SwiftDefinitionElement) MT101.U0004U0003);
      MT101.U0091.Elements.Add((SwiftDefinitionElement) MT101.U0003U0003);
      MT101.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT101.U0091);
    }

    public class SequenceAClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT101.U0002;
        }
      }

      [Description("Sender's Reference")]
      public Tag20 SendersReference_A_20
      {
        get
        {
          return new Tag20((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0003);
        }
      }

      [Description("Sender's Reference")]
      public Tag20 Tag20_SendersReference_A
      {
        get
        {
          return this.SendersReference_A_20;
        }
      }

      [Description("Customers Specified Reference")]
      public Tag21R CustomerSpecifiedReference_A_21R
      {
        get
        {
          return new Tag21R((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0005);
        }
      }

      [Description("Customers Specified Reference")]
      public Tag21R Tag21R_CustomerSpecifiedReference_A
      {
        get
        {
          return this.CustomerSpecifiedReference_A_21R;
        }
      }

      [Description("Message")]
      public Tag28D Message_A_28D
      {
        get
        {
          return new Tag28D((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0007);
        }
      }

      [Description("Message")]
      public Tag28D Tag28D_Message_A
      {
        get
        {
          return this.Message_A_28D;
        }
      }

      [Description("Instructing Party")]
      public MT101.SequenceAClass.Tag50C InstructingParty_A_50C
      {
        get
        {
          return new MT101.SequenceAClass.Tag50C((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0010);
        }
      }

      [Description("Instructing Party")]
      public MT101.SequenceAClass.Tag50C Tag50C_InstructingParty_A
      {
        get
        {
          return this.InstructingParty_A_50C;
        }
      }

      [Description("Instructing Party")]
      public Tag50L InstructingParty_A_50L
      {
        get
        {
          return new Tag50L((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0011);
        }
      }

      [Description("Instructing Party")]
      public Tag50L Tag50L_InstructingParty_A
      {
        get
        {
          return this.InstructingParty_A_50L;
        }
      }

      [Description("Ordering Customer")]
      public Tag50F OrderingCustomer_A_50F
      {
        get
        {
          return new Tag50F((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0014);
        }
      }

      [Description("Ordering Customer")]
      public Tag50F Tag50F_OrderingCustomer_A
      {
        get
        {
          return this.OrderingCustomer_A_50F;
        }
      }

      [Description("Ordering Customer")]
      public Tag50G OrderingCustomer_A_50G
      {
        get
        {
          return new Tag50G((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U001C);
        }
      }

      [Description("Ordering Customer")]
      public Tag50G Tag50G_OrderingCustomer_A
      {
        get
        {
          return this.OrderingCustomer_A_50G;
        }
      }

      [Description("Ordering Customer")]
      public Tag50H OrderingCustomer_A_50H
      {
        get
        {
          return new Tag50H((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U007F);
        }
      }

      [Description("Ordering Customer")]
      public Tag50H Tag50H_OrderingCustomer_A
      {
        get
        {
          return this.OrderingCustomer_A_50H;
        }
      }

      [Description("Account Servcing Institution")]
      public Tag52A AccountServicingInstitution_A_52A
      {
        get
        {
          return new Tag52A((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0084);
        }
      }

      [Description("Account Servcing Institution")]
      public Tag52A Tag52A_AccountServicingInstitution_A
      {
        get
        {
          return this.AccountServicingInstitution_A_52A;
        }
      }

      [Description("Account Servcing Institution")]
      public Tag52C AccountServicingInstitution_A_52C
      {
        get
        {
          return new Tag52C((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0088);
        }
      }

      [Description("Account Servcing Institution")]
      public Tag52C Tag52C_AccountServicingInstitution_A
      {
        get
        {
          return this.AccountServicingInstitution_A_52C;
        }
      }

      [Description("Sending Institution")]
      public Tag51A SendingInstitution_A_51A
      {
        get
        {
          return new Tag51A((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U008A);
        }
      }

      [Description("Sending Institution")]
      public Tag51A Tag51A_SendingInstitution_A
      {
        get
        {
          return this.SendingInstitution_A_51A;
        }
      }

      [Description("Requested Execution Date")]
      public Tag30 RequestedExecutionDate_A_30
      {
        get
        {
          return new Tag30((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U008D);
        }
      }

      [Description("Requested Execution Date")]
      public Tag30 Tag30_RequestedExecutionDate_A
      {
        get
        {
          return this.RequestedExecutionDate_A_30;
        }
      }

      [Description("Authorisation")]
      public MT101.SequenceAClass.Tag25 Authorisation_A_25
      {
        get
        {
          return new MT101.SequenceAClass.Tag25((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U008F);
        }
      }

      [Description("Authorisation")]
      public MT101.SequenceAClass.Tag25 Tag25_Authorisation_A
      {
        get
        {
          return this.Authorisation_A_25;
        }
      }

      internal SequenceAClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public class Tag50C : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("50C", value);
          }
        }

        internal Tag50C(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class Tag25 : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("25", value);
          }
        }

        internal Tag25(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }
    }

    public class SequenceBClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT101.U0091;
        }
      }

      [Description("Transaction Reference")]
      public Tag21 TransactionReference_B_21
      {
        get
        {
          return new Tag21((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0092);
        }
      }

      [Description("Transaction Reference")]
      public Tag21 Tag21_TransactionReference_B
      {
        get
        {
          return this.TransactionReference_B_21;
        }
      }

      [Description("F/X Deal Reference")]
      public Tag21F FXDealReference_B_21F
      {
        get
        {
          return new Tag21F((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0094);
        }
      }

      [Description("F/X Deal Reference")]
      public Tag21F Tag21F_FXDealReference_B
      {
        get
        {
          return this.FXDealReference_B_21F;
        }
      }

      [Description("Instruction Code")]
      public MT101.SequenceBClass.Tag23E[] InstructionCode_B_23E
      {
        get
        {
          int index = -1;
          List<MT101.SequenceBClass.Tag23E> list = new List<MT101.SequenceBClass.Tag23E>();
          int count;
          do
          {
            ++index;
            MT101.SequenceBClass.Tag23E tag23E = new MT101.SequenceBClass.Tag23E((SwiftElement) this, index, (SwiftDefinitionElement) MT101.U0096);
            count = this.ListTags((SwiftElement) tag23E).Count;
            if (count > 0)
              list.Add(tag23E);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Instruction Code")]
      public MT101.SequenceBClass.Tag23E[] Tag23E_InstructionCode_B
      {
        get
        {
          return this.InstructionCode_B_23E;
        }
      }

      [Description("Currency Transaction Amount")]
      public Tag32B CurrencyTransactionAmount_B_32B
      {
        get
        {
          return new Tag32B((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U009A);
        }
      }

      [Description("Currency Transaction Amount")]
      public Tag32B Tag32B_CurrencyTransactionAmount_B
      {
        get
        {
          return this.CurrencyTransactionAmount_B_32B;
        }
      }

      [Description("Instructing Party")]
      public MT101.SequenceBClass.Tag50C InstructingParty_B_50C
      {
        get
        {
          return new MT101.SequenceBClass.Tag50C((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U009E);
        }
      }

      [Description("Instructing Party")]
      public MT101.SequenceBClass.Tag50C Tag50C_InstructingParty_B
      {
        get
        {
          return this.InstructingParty_B_50C;
        }
      }

      [Description("Instructing Party")]
      public Tag50L InstructingParty_B_50L
      {
        get
        {
          return new Tag50L((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U009F);
        }
      }

      [Description("Instructing Party")]
      public Tag50L Tag50L_InstructingParty_B
      {
        get
        {
          return this.InstructingParty_B_50L;
        }
      }

      [Description("Ordering Customer")]
      public Tag50F OrderingCustomer_B_50F
      {
        get
        {
          return new Tag50F((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0003U0002);
        }
      }

      [Description("Ordering Customer")]
      public Tag50F Tag50F_OrderingCustomer_B
      {
        get
        {
          return this.OrderingCustomer_B_50F;
        }
      }

      [Description("Ordering Customer")]
      public Tag50G OrderingCustomer_B_50G
      {
        get
        {
          return new Tag50G((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0010U0002);
        }
      }

      [Description("Ordering Customer")]
      public Tag50G Tag50G_OrderingCustomer_B
      {
        get
        {
          return this.OrderingCustomer_B_50G;
        }
      }

      [Description("Ordering Customer")]
      public Tag50H OrderingCustomer_B_50H
      {
        get
        {
          return new Tag50H((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0014U0002);
        }
      }

      [Description("Ordering Customer")]
      public Tag50H Tag50H_OrderingCustomer_B
      {
        get
        {
          return this.OrderingCustomer_B_50H;
        }
      }

      [Description("Account Servcing Institution")]
      public Tag52A AccountServicingInstitution_B_52A
      {
        get
        {
          return new Tag52A((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0019U0002);
        }
      }

      [Description("Account Servcing Institution")]
      public Tag52A Tag52A_AccountServicingInstitution_B
      {
        get
        {
          return this.AccountServicingInstitution_B_52A;
        }
      }

      [Description("Account Servcing Institution")]
      public Tag52C AccountServicingInstitution_B_52C
      {
        get
        {
          return new Tag52C((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U001CU0002);
        }
      }

      [Description("Account Servcing Institution")]
      public Tag52C Tag52C_AccountServicingInstitution_B
      {
        get
        {
          return this.AccountServicingInstitution_B_52C;
        }
      }

      [Description("Intermediary")]
      public MT101.SequenceBClass.Tag56A Intermediary_B_56A
      {
        get
        {
          return new MT101.SequenceBClass.Tag56A((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U001FU0002);
        }
      }

      [Description("Intermediary")]
      public MT101.SequenceBClass.Tag56A Tag56A_Intermediary_B
      {
        get
        {
          return this.Intermediary_B_56A;
        }
      }

      [Description("")]
      public MT101.SequenceBClass.Tag56C Intermediary_B_56C
      {
        get
        {
          return new MT101.SequenceBClass.Tag56C((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0081U0002);
        }
      }

      [Description("")]
      public MT101.SequenceBClass.Tag56C Tag56C_Intermediary_B
      {
        get
        {
          return this.Intermediary_B_56C;
        }
      }

      [Description("")]
      public MT101.SequenceBClass.Tag56D Intermediary_B_56D
      {
        get
        {
          return new MT101.SequenceBClass.Tag56D((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0083U0002);
        }
      }

      [Description("")]
      public MT101.SequenceBClass.Tag56D Tag56D_Intermediary_B
      {
        get
        {
          return this.Intermediary_B_56D;
        }
      }

      [Description("Account With Institution")]
      public Tag57A AccountWithInstitution_B_57A
      {
        get
        {
          return new Tag57A((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0088U0002);
        }
      }

      [Description("Account With Institution")]
      public Tag57A Tag57A_AccountWithInstitution_B
      {
        get
        {
          return this.AccountWithInstitution_B_57A;
        }
      }

      [Description("")]
      public Tag57C AccountWithInstitution_B_57C
      {
        get
        {
          return new Tag57C((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U008BU0002);
        }
      }

      [Description("")]
      public Tag57C Tag57C_AccountWithInstitution_B
      {
        get
        {
          return this.AccountWithInstitution_B_57C;
        }
      }

      [Description("")]
      public Tag57D AccountWithInstitution_B_57D
      {
        get
        {
          return new Tag57D((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U008DU0002);
        }
      }

      [Description("")]
      public Tag57D Tag57D_AccountWithInstitution_B
      {
        get
        {
          return this.AccountWithInstitution_B_57D;
        }
      }

      [Description("Beneficiary")]
      public Tag59A Beneficiary_B_59A
      {
        get
        {
          return new Tag59A((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0091U0002);
        }
      }

      [Description("Beneficiary")]
      public Tag59A Tag59A_Beneficiary_B
      {
        get
        {
          return this.Beneficiary_B_59A;
        }
      }

      [Description("Beneficiary")]
      public MT101.SequenceBClass.Tag59 Beneficiary_B_59
      {
        get
        {
          return new MT101.SequenceBClass.Tag59((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0095U0002);
        }
      }

      [Description("Beneficiary")]
      public MT101.SequenceBClass.Tag59 Tag59_Beneficiary_B
      {
        get
        {
          return this.Beneficiary_B_59;
        }
      }

      [Description("Remittance Information")]
      public Tag70 RemittanceInformation_B_70
      {
        get
        {
          return new Tag70((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0099U0002);
        }
      }

      [Description("Remittance Information")]
      public Tag70 Tag70_RemittanceInformation_B
      {
        get
        {
          return this.RemittanceInformation_B_70;
        }
      }

      [Description("Regulatory Reporting")]
      public Tag77B RegulatoryReporting_B_77B
      {
        get
        {
          return new Tag77B((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U009AU0002);
        }
      }

      [Description("Regulatory Reporting")]
      public Tag77B Tag77B_RegulatoryReporting_B
      {
        get
        {
          return this.RegulatoryReporting_B_77B;
        }
      }

      [Description("Currency/Original Ordered Amount")]
      public Tag33B CurrencyOriginalOrderedAmount_B_33B
      {
        get
        {
          return new Tag33B((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U009BU0002);
        }
      }

      [Description("Currency/Original Ordered Amount")]
      public Tag33B Tag33B_CurrencyOriginalOrderedAmount_B
      {
        get
        {
          return this.CurrencyOriginalOrderedAmount_B_33B;
        }
      }

      [Description("Detail Of Charges")]
      public Tag71A DetailOfCharges_B_71A
      {
        get
        {
          return new Tag71A((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U009EU0002);
        }
      }

      [Description("Detail Of Charges")]
      public Tag71A Tag71A_DetailOfCharges_B
      {
        get
        {
          return this.DetailOfCharges_B_71A;
        }
      }

      [Description("Charges Account")]
      public Tag25A ChargesAccount_B_25A
      {
        get
        {
          return new Tag25A((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0001U0003);
        }
      }

      [Description("Charges Account")]
      public Tag25A Tag25A_ChargesAccount_B
      {
        get
        {
          return this.ChargesAccount_B_25A;
        }
      }

      [Description("Exchange Rate")]
      public Tag36 ExchangeRate_B_36
      {
        get
        {
          return new Tag36((SwiftElement) this, 0, (SwiftDefinitionElement) MT101.U0003U0003);
        }
      }

      [Description("Exchange Rate")]
      public Tag36 Tag36_ExchangeRate_B
      {
        get
        {
          return this.ExchangeRate_B_36;
        }
      }

      internal SequenceBClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public MT101.SequenceBClass.Tag23E AddInstructionCode_B_23E()
      {
        return new MT101.SequenceBClass.Tag23E((SwiftElement) this, this.InstructionCode_B_23E.Length, (SwiftDefinitionElement) MT101.U0096)
        {
          Value = string.Empty
        };
      }

      public void RemoveInstructionCode_B_23E(MT101.SequenceBClass.Tag23E tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public class Tag23E : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("23E", value);
          }
        }

        internal Tag23E(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class Tag50C : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("50C", value);
          }
        }

        internal Tag50C(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class Tag56A : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("56A", value);
          }
        }

        internal Tag56A(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class Tag56C : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("56C", value);
          }
        }

        internal Tag56C(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class Tag56D : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("56D", value);
          }
        }

        internal Tag56D(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class Tag59 : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("59", value);
          }
        }

        internal Tag59(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }
    }
  }
}
